package com.lcz.mobilesafe.config;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;

import com.lcz.mobilesafe.utils.FileUtil;
import com.yolanda.nohttp.Headers;
import com.yolanda.nohttp.NoHttp;
import com.yolanda.nohttp.download.DownloadListener;
import com.yolanda.nohttp.download.DownloadRequest;
import com.yolanda.nohttp.rest.OnResponseListener;
import com.yolanda.nohttp.rest.Request;
import com.yolanda.nohttp.rest.RequestQueue;

import java.io.File;

import static com.lcz.mobilesafe.config.Constants.URL_DOWNLOAD;

/**
 * Created by hp on 2017/3/1.
 */

public class AppProtocol {
    //请求队列
    private static RequestQueue requestQueue = NoHttp.newRequestQueue();
    /**
     * 下载请求.
     */
    public static DownloadRequest mDownloadRequest;

    public static void requesDate_Get(String url, OnResponseListener listener) {
        //创建请求对象
        Request<String> stringRequest = NoHttp.createStringRequest(url);
        //发起请求
        requestQueue.add(1, stringRequest, listener);
    }

    public static void download(final Activity activity) {
        String fileFolder = FileUtil.getRootPath().getAbsolutePath() + File.separator + "mobilesafe";
        // 开始下载了，但是任务没有完成，代表正在下载，那么暂停下载。
        if (mDownloadRequest != null && mDownloadRequest.isStarted() && !mDownloadRequest.isFinished()) {
            // 暂停下载。
            mDownloadRequest.cancel();
        } else if (mDownloadRequest == null || mDownloadRequest.isFinished()) {// 没有开始或者下载完成了，就重新下载。
            // url 下载地址。
            // fileFolder 保存的文件夹。
            // fileName 文件名。
            // isRange 是否断点续传下载。
            // isDeleteOld 如果发现存在同名文件，是否删除后重新下载，如果不删除，则直接下载成功。
            mDownloadRequest = NoHttp.createDownloadRequest(URL_DOWNLOAD, fileFolder, "mobilesafe.apk", true, false);

            // what 区分下载。
            // downloadRequest 下载请求对象。
            // downloadListener 下载监听。
            CallServer.getDownloadInstance().add(0, mDownloadRequest, new DownloadListener() {
                @Override
                public void onDownloadError(int what, Exception exception) {

                }

                @Override
                public void onStart(int what, boolean isResume, long rangeSize, Headers responseHeaders, long allCount) {
                    System.out.println("开始下载：" + rangeSize + "/" + allCount);
                }

                @Override
                public void onProgress(int what, int progress, long fileCount) {
                    System.out.println("正在下载：" + progress + "/" + fileCount);
                }


                @Override
                public void onFinish(int what, String filePath) {

                    //跳转到系统安装页面
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.addCategory(Intent.CATEGORY_DEFAULT);
                    intent.setDataAndType(Uri.fromFile(new File(FileUtil.getRootPath().getAbsolutePath() + File.separator + "mobilesafe/mobilesafe.apk")),
                            "application/vnd.android.package-archive");
//                startActivity(intent);
                    activity.startActivityForResult(intent, 1);//取消安装
                }

                @Override
                public void onCancel(int what) {

                }
            });

        }

    }

}
